const { PrismaClient } = require('@prisma/client')
const { hash } = require('bcryptjs')

const prisma = new PrismaClient()

async function main() {
  // 检查管理员用户是否已存在
  const existingAdmin = await prisma.user.findUnique({
    where: {
      email: 'admin@example.com'
    }
  })

  if (!existingAdmin) {
    // 创建管理员用户
    const hashedPassword = await hash('admin123', 12)
    await prisma.user.create({
      data: {
        email: 'admin@example.com',
        password: hashedPassword,
        name: '管理员',
        role: 'ADMIN'
      }
    })
    console.log('已创建管理员用户')
  } else {
    console.log('管理员用户已存在')
  }

  // 创建默认普通用户
  const userPassword = await hash('user123', 10)
  
  const user = await prisma.user.upsert({
    where: { email: 'user@example.com' },
    update: {},
    create: {
      email: 'user@example.com',
      password: userPassword,
      name: '测试用户',
      role: 'USER'
    },
  })

  console.log({ user })
}

main()
  .catch((e) => {
    console.error('Seed 失败:', e)
    process.exit(1)
  })
  .finally(async () => {
    await prisma.$disconnect()
  }) 